
def remove_nonenglish(input_str):
    eng_chars = []
    for char in input_str:
        if char.isalpha() and ord(char) < 128:
            eng_chars.append(char)
    return "".join(eng_chars)

def reverse_str(input_str):
    reversed_str = ""
    for i in range(len(input_str)-1, -1, -1):
        reversed_str += input_str[i]
    return reversed_str

def caesar_cipher(input_str):
    encoded_str = ""
    for char in input_str:
        if char.islower():
            encoded_str += chr((ord(char)-97+3) % 26 + 97)
        elif char.isupper():
            encoded_str += chr((ord(char)-65+3) % 26 + 65)
        else:
            encoded_str += char
    return encoded_str

input_str = input("请输入字符串（长度0~255）：")

# 判断字符串长度是否合法
if len(input_str) == 0 or len(input_str) > 255:
    print("输入的字符串长度不合法，请重新输入！")
else:
    # 调用remove_nonenglish函数剔除非英文字符
    eng_str = remove_nonenglish(input_str)
    # 调用reverse_str函数反转字符串
    reversed_str = reverse_str(eng_str)
    # 调用caesar_cipher函数加密字符串
    encoded_str = caesar_cipher(reversed_str)
    # 输出加密后的字符串
    print("加密后的字符串为：", encoded_str)
